
pdb-tools
NOTE
The pdbtools suite is now hosted on github: https://github.com/harmslab/pdbtools. The documentation below, as well as sources, are still here for historical reasons. -- Mike Harms, 2014-10-08
Introduction
pdbTools is a set of command line python scripts that manipulate wwPDB protein and nucleic acid structure files. There are many programs, both open source and proprietary, that perform similar tasks; however, most of these tools are buried within programs of larger functionality. Thus, relatively simple calculations often involve learning a new program, compiling modules, and installing libraries. To fill a niche (and get the tasks done that I needed done), I started writing my own toolset. This has evolved into the pdbTools suite. The suite of programs is characterized by the following philosophy:
- Each program should run as a stand-alone application with a standard, GNU/POSIX style command line interface.
- Each program should be written in such a way to allow it to be used as a library of functions for more complex programs.
- Programs should require a minimum of external dependencies.
Most of the scripts will run "out of the box" using a python interpreter. The command line parser is designed to be flexible. It will take an arbitrarily long list of pdb files, pdb ids, text files with pdb ids, or some mixture of all three. If the pdb file or id is not in the working directory, scripts will attempt to download the pdb file from RCSB. Depending on the type of operation being done, a program will either write output files in the working directory or will print to stdout. All structure outputs are written in standard pdb format. All data outputs are in fixed-width column format. They were designed to be read by the statistics package R; however, they should be easily parsed by other graphing programs.
Note: These scripts are only compatible with Python version 2.4-2.7.
Current functions
Miscellaneous
- download pdb files from the RCSB database: pdb_download.py
Structure-based calculations
Geometry
- calculate protein center of mass: pdb_centermass.py
- calculate distance distributions: pdb_dist-filter.py, pdb_ion_dist.py
- calculate backbone torsion angles: pdb_torsion.py
- calculate atom-by-atom solvent accessibility pdb_sasa.py(requires NACCESS)
- find disulfide bonds based on distance: pdb_disfulfide.py
- find residues within some distance of each other: pdb_contact.py, pdb_water-contact.py, pdb_close-contacts.py
- find number of atoms neighboring another: pdb_neighbors.py
- find ligands in structure file (ignoring boring ligands like water): pdb_ligand.py
- figure out oligomerization state of macrmolecule: pdb_oligomer.py
Energy calculation
- calculate coulomb energy: pdb_coulomb.py
- calculate the dipole moment of the protein: pdb_moment.py
calculate pKa of ionizable groups using the Solvent-Accessibility-modified Tanford-Kirkwood method pdb_satk.py (requires fortran compiler)
Structure properties
extract structure experiment properties: pdb_exper.py
- extract protein sequence from structure: pdb_seq.py
- calculate theoretical pI, MW, fraction titratable residues, charge: pdb_param.py
File/structure manipulation
- add polar hydrogens: pdb_addH.py (requires CHARMM)
- add missing heavy atoms, remove alternate conformations, etc.: pdb_clean.py (requires CHARMM)
- mutate a residue: pdb_mutator.py (requires CHARMM)
- renumber atoms: pdb_atom-renumber.py
- renumber residues: pdb_residue-renumber.py
- offset all residues by a fixed amount: pdb_offset.py
- center protein in xyz space: pdb_centermass.py
- places the asymmetric unit inside the unit cell: pdb_centerasu.py
- take subset of residues from file: pdb_subset.py
- split an NMR ensemble structure into individual files: pdb_splitnmr.py
- take a set of pdb files and create an individual directory for each one: pdb_pdb2dir.py
- load data into the b-factor column: pdb_bfactor.py
Some of the programs are written as interfaces to other programs: CHARMM, NACCESS, which must be downloaded and installed separately if their functions are desired. To use pdb_satk.py, a set of fortran packages must be compiled.
Contributing
If you find a bug or have an idea for a program you'd like in this package, please let me know. You can also send me your own code to incorporate, preferably via an svn branch.
Project Owner
- Mike Harms (http://harmslab.uoregon.edu)
Contributors
- Marcin Cieślik
Project Information
- License: GNU GPL v3
- 43 stars
- svn-based source control
Labels:
python
pdb
scientific
protein
structure
calculation
macromolecule
geometry